import axios from 'axios'

// 设置请求不同域名的接口
axios.defaults.baseURL = 'http://localhost:8888/api/private/v1/'

// 使用请求拦截，它会将所有的请求拦截下来
axios.interceptors.request.use(config => {
  // config表示请求对象
  // console.log(config)
  let mytoken = localStorage.getItem('mytoken') || ''
  if (mytoken) {
    // 存在token就将token塞进请求头的某个字段中，这个字段名不能随便取，它是一个前后端约好的值
    config.headers['Authorization'] = mytoken
  }
  // 请求对象必须return回去
  return config
}, error => {
  // 失败的回调
  return Promise.reject(error)
})

// 定义登录验证接口
export const postLogin = obj => {
  return axios.post('/login', obj).then(res => res.data)
}

// 用户数据列表
export const getUsetList = obj => axios.get('/users', {
  params: obj
}).then(res => res.data)

// 左侧菜单权限
export const getMenus = () => axios.get('/menus').then(res => res.data)

// 商品数据列表
export const getGoodsList = obj => axios.get('/goods', {
  params: obj
}).then(res => res.data)

// 商品分类数据列表
export const getCategories = type => axios.get('/categories', {
  params: type
}).then(res => res.data)

// 获取角色列表
export const getRolesList = () => axios.get('/roles').then(res => res.data)

// 添加角色
export const getAddRoles = (obj) => axios.post('/roles', obj).then(res => res.data)
// 删除角色
export const getDelRoles = (id) => axios.delete(`/roles/${id}`).then(res => res.data)
// 编辑角色
export const getEditRoles = (id, obj) => axios.put(`/roles/${id}`, obj).then(res => res.data)
// 获取所有权限列表
export const getRights = type => axios.get(`/rights/${type}`).then(res => res.data)

// 角色授权
export const grantUserRight = (roleId, ridStrs) => axios.post(`roles/${roleId}/rights`, { rids: ridStrs }).then(res => res.data)
// 删除权限
// 这里的都是形参  可以随意写
export const delRights = (a, b) => axios.delete(`/roles/${b}/rights/${a}`).then(res => res.data)
